package homework.mission4;

import java.util.LinkedList;

public class StudentManageSystem {
    // 所有学生信息
    private LinkedList<Student> students = new LinkedList<>();

    /**
     * 添加新的学生信息
     * @param s
     */
    public void add(Student s) {
        // 获取要添加学生的学号
        int id = s.getId();

        if(this.find(id) == null) {
            this.students.add(s);
        } else {
            System.out.println("您当前添加的学生信息已存在");
        }
    }

    /**
     * 删除学号为 id 的学生信息
     * @param id
     */
    public void del(int id) {
        if(this.students == null || this.students.size() == 0) {
            System.out.println("学生信息为空");
            return;
        }

        Student student = this.find(id);
        if(student == null) {
            System.out.println("要删除的学生信息不存在");
        } else {
            this.students.remove(student);
        }
    }

    /**
     * 修改学生信息
     * @param index
     * @param s
     */
    public void change(int index, Student s) {
        if(this.students == null || this.students.size() == 0) {
            System.out.println("学生信息为空");
            return;
        }

        this.students.set(index, s);
    }

    /**
     * 获取学号为 id 的学生在列表中的索引
     * @param id
     * @return
     */
    public int getIndex(int id) {
        for (int i = 0; i < students.size(); i++) {
            if(id == students.get(i).getId()) {
                return i;
            }
        }

        return -1;
    }

    /**
     * 查找学生信息
     * @param id
     * @return
     */
    public Student find(int id) {
        for (Student student : students) {
            if(student.getId() == id) {
                return student;
            }
        }

        return null;
    }

    /**
     * 遍历学生信息
     */
    public void printStudents() {
        for (Student student : students) {
            System.out.println(student);
        }
    }
}
